// pages/cart/cart.js
const app = getApp()
Page({
  data: {
    token: '',
    cart: [],
    totalAmount: 0
  },
  onShow() {
    this.setData({
      token: app.globalData.token,
      cart: app.globalData.cart
    })
    // console.log(1);
    this.calculateTotalAmount();
  },
  onLoad(options) {
  },
  toshop() {
    wx.switchTab({
      url: '/pages/index/index',
    })
  },
  tologin() {
    wx.navigateTo({
      url: '/pages/login/login',
    })
  },
  // 商品数量-1
  down: function (e) {
    const id = e.currentTarget.dataset.id;
    const index = this.data.cart.findIndex(item => item.id === id);
    if (this.data.cart[index].quantity > 1) {
      this.updateCart(-1, id);
    }
    // if (index !== -1) {
    //   if (this.data.cart[index].quantity > 1) {
    //     this.data.cart[index].quantity -= 1;
    //     this.setData({
    //       [`cart[${index}].quantity`]: this.data.cart[index].quantity
    //     });
    //   }
    // }
  },
  // 商品数量+1
  add: function (e) {
    const id = e.currentTarget.dataset.id;
    const index = this.data.cart.findIndex(item => item.id === id);
    this.updateCart(1, id);
    // if (index !== -1) {
    //   this.data.cart[index].quantity += 1;
    //   this.setData({
    //     [`cart[${index}].quantity`]: this.data.cart[index].quantity
    //   });
    // }
  },
  del: function (e) {
    const id = e.currentTarget.dataset.id; // 获取要删除的商品ID
    // 过滤掉被删除的商品
    let newCart = this.data.cart.filter(item => item.id !== id);
    app.globalData.cart = newCart;
    // 在setData中更新购物车数据
    this.setData({
      cart: newCart
    });
    // 重新计算总价
    this.calculateTotalAmount();
    // 可以在这里添加一个提示，告知用户商品已被删除
    wx.showToast({
      title: '商品已删除',
      icon: 'success',
      duration: 2000
    });
    console.log(this.data.cart);
    console.log(app.globalData.cart);
  },
  calculateTotalAmount: function () {
    let total = 0;
    this.data.cart.forEach(item => {
      total += item.price * item.quantity;
    });
    this.setData({
      totalAmount: total
    });
  },

  // 当购物车商品数量变化时更新合计金额
  updateCart: function (delta, id) {
    let newCart = this.data.cart.map(item => {
      if (item.id === id) {
        item.quantity += delta;
      }
      return item;
    });
    app.globalData.cart = newCart;
    this.setData({
      cart: newCart,
    });
    this.calculateTotalAmount()
  },
})